﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Open_MUD.Mudlib.lib
{
    class Rompible:Posicionable
    {
		const int ROTO = -1;
		const int IRRECUPERABLE = -300;
		/**
		 *
		 * La vida de un objeto sólo puede ir de 0 a N. Debajo de 0 es que está roto. Debajo de -300 es que es irrecuperable
		 *
		 */
		private int vida;
		protected int Vida
		{
			get{return vida;}
			set{
				if(value > 0) vida = value;
				else{
					romper();
				}
			}
		}
		
		protected void romper()
		{
			vida = ROTO;
			event_romper();
		}
		
		protected void destruir()
		{
			vida = IRRECUPERABLE;
			event_destruir();
		}

        protected virtual void event_romper() { }
		protected virtual void event_destruir() {}
    }
}
